IF exists(SELECT * FROM dbo.sysobjects WHERE name='survStudiezaalPerUur' AND xtype='FN') 
BEGIN
	DROP FUNCTION survStudiezaalPerUur
END
GO

CREATE   function survStudiezaalPerUur
(@hetUur char(1),@datum varchar(20))
returns table
as
return
(
select  distinct a.datum,left( a.weekdag,2) as weekdag,
	klas=case when len(d.groepscode)>1 then d.groepscode else d.klas end,
	h.uur,
	a.naamcode,
	graad=case when left(h.deKlas,1)=1 or left(h.deKlas,1)=2 then 1
        else 2 end,        
	leraars=case when d.hetUur=1 then 'secretariaat' else d.deLeraar end,
        zaal=case when left(h.deKlas,1)=1 or left(h.deKlas,1)=2 then 'STUDIEZAAL 1 (eerste verdieping)'
        else 'STUDIEZAAL 2 (tweede verdieping)' end
        
from survAfwezigeLeraarsDatum(@datum) as a
left outer join (select r.deLeraar,r.hetVak,r.deKlas as klas,'' as groepsCode,r.deDag,r.hetUur from rooster as r
                  union 
                 select s.naamcode,s.vakcode,l.klas as klas,s.groepscode,s.deDag,s.hetUur
                  from seminarieRooster as s
                       left join leerlingen..seminarieLijst as l
                          on l.vakcode=s.vakcode)as d
on a.naamcode=d.deLeraar 
 left join hulpKLasRooster as h
on h.Uur=d.hetUur and h.deKLas=d.Klas
left join survLeraarsAfwezigUrenOverzicht as s
on s.datum=a.datum and s.naamcode=a.naamcode
where left(a.weekdag,2)=d.deDag and h.deKlas is not null and d.hetUur=@hetUur
      and charindex(ltrim(rtrim(@hetUur)),s.afwezig)>0  
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,'','1','','STUDIEZAAL 1 (eerste verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','1','','STUDIEZAAL 1 (eerste verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,'','1','','STUDIEZAAL 1 (eerste verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','1','','STUDIEZAAL 1 (eerste verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','1','','STUDIEZAAL 1 (eerste verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a 
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,'','2','','STUDIEZAAL 2 (tweede verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','2','','STUDIEZAAL 2 (tweede verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','2','','STUDIEZAAL 2 (tweede verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a    
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','2','','STUDIEZAAL 2 (tweede verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a
union all
select distinct a.datum,left( a.weekdag,2) as weekdag,'x',@hetUur,' ','2','','STUDIEZAAL 2 (tweede verdieping)'
from survAfwezigeLeraarsDatum(@datum) as a   
)